package cn.fl.project.utils;

import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import cn.cmm.base.framework.utils.StringUtils;

/**
 * 	车牌校验格式工具类
 * @author gaorui
 *
 */
public class ValisityUtils {

	/**
	 * 校验多车牌号格式（非新能源）
	 * @param vehNos
	 * @return true 全部符合格式  false 存在不符合格式
	 */
	public static boolean validityVehNo(String[] vehNos) {
		for (String vehNo : vehNos) {
			if(!validityVehNo(vehNo)) return false;
		}
		return true;
	}
	/**
	 * 校验车牌号格式（非新能源）
	 * @param vehNo
	 * @return true 符合格式  false 不符合格式
	 */
	public static boolean validityVehNo(String vehNo) {
		if(StringUtils.isBlank(vehNo)) return false;
//		String pattern = "^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z][A-Z][A-Z0-9]{4}[A-Z0-9挂学警港澳]$";
		String pattern = "^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$";
		Pattern r = Pattern.compile(pattern);
		Matcher m = r.matcher(vehNo);
		return m.matches();
	}
	/**
	 * 校验车牌号格式（新能源）
	 * @param vehNo
	 * @return true 符合格式  false 不符合格式
	 */
	public static boolean validityVehNoNew(String vehNo) {
		if(StringUtils.isBlank(vehNo)) return false;
		String pattern = "^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF])|([DF][A-HJ-NP-Z0-9][0-9]{4}))$";
		Pattern r = Pattern.compile(pattern);
		Matcher m = r.matcher(vehNo);
		return m.matches();
	}
	/**
	 * 校验车牌号格式（含新能源）
	 * @param vehNo
	 * @return true 符合格式  false 不符合格式
	 */
	public static boolean validityVehNoAll(String vehNo) {
		if(StringUtils.isBlank(vehNo)) return false;
		String pattern = "^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1})$";
		return vehNo.matches(pattern);
	}

	public static String validityVehNoTemp() {
		String vehNo = "京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼挂ABCDEFGHJKLMNPQRSTUVWXYZ0123456789";
		return vehNo;
	}
}
